The present disclosure relates to bandwidth management techniques in video coding applications supporting decode of multiple video streams in parallel.
Modern consumer devices support exchange of video between networked devices in a variety of contexts. For example, many consumer applications support download of video from websites on the Internet. Many others support videoconferencing applications where video is exchanged between terminals for display. And it is becoming increasingly common for such devices to perform video exchanges simultaneously for several video streams that are active in parallel.
Video data tends to consume greater bandwidth than other forms of data that are exchanged between such devices on a store and forward basis. Source video data often is coded according to compression algorithms that exploit redundancies in the videos' content in order to fit the video to bandwidth that can be made available for communication between devices. Such compression algorithms tend to be lossy processes, which cause decoded video to be a replica of the source video but possess some loss in video content. Coding losses, however, tend to be reduced as bandwidth allocations increase and, therefore, video coding system often attempt to maximize bandwidth allocations made to them to minimize coding errors.
Although video coding/decoding systems are capable of processing multiple video streams in parallel, such systems may process such streams independently of each other. Accordingly, when two coding sessions are established to process two coding streams, those sessions each may attempt to maximize the bandwidth allocated for their respective sessions. In such a case, requested bandwidth in aggregate may exceed a network's allocation of bandwidth to the terminal the processes the sessions or may exceed resources available within the terminal for such processes. And, indeed, as the capabilities of networked communications systems increase, the problems that are observed now with respect to parallel video streams may be encountered when downloading other types of data in such systems. Accordingly, there is a need in the art for a coordinated bandwidth management scheme for a device that supports parallel coding and/or decoding of multiple data streams.